package cn.edu.scau.cmi.ema.service.base;

import cn.edu.scau.cmi.ema.domain.Adulterlink;
import cn.edu.scau.cmi.ema.domain.Adultertype;
import cn.edu.scau.cmi.ema.domain.Brand;
import cn.edu.scau.cmi.ema.domain.Crawlerdetect;
import cn.edu.scau.cmi.ema.domain.Crawlerevent;
import cn.edu.scau.cmi.ema.domain.Detect;
import cn.edu.scau.cmi.ema.domain.Detectdepartment;
import cn.edu.scau.cmi.ema.domain.Detectdetail;
import cn.edu.scau.cmi.ema.domain.Detectfeature;
import cn.edu.scau.cmi.ema.domain.Detectmethod;
import cn.edu.scau.cmi.ema.domain.Detectstandard;
import cn.edu.scau.cmi.ema.domain.Discoverylink;
import cn.edu.scau.cmi.ema.domain.Event;
import cn.edu.scau.cmi.ema.domain.Eventadulterlink;
import cn.edu.scau.cmi.ema.domain.Eventhazard;
import cn.edu.scau.cmi.ema.domain.Eventpunish;
import cn.edu.scau.cmi.ema.domain.Feature;
import cn.edu.scau.cmi.ema.domain.Featurestandard;
import cn.edu.scau.cmi.ema.domain.Filler;
import cn.edu.scau.cmi.ema.domain.Fillertype;
import cn.edu.scau.cmi.ema.domain.Food;
import cn.edu.scau.cmi.ema.domain.Foodbatch;
import cn.edu.scau.cmi.ema.domain.Foodbatchfiller;
import cn.edu.scau.cmi.ema.domain.Foodtype;
import cn.edu.scau.cmi.ema.domain.Hazard;
import cn.edu.scau.cmi.ema.domain.Law;
import cn.edu.scau.cmi.ema.domain.Packingmethod;
import cn.edu.scau.cmi.ema.domain.Producer;
import cn.edu.scau.cmi.ema.domain.Subject;
import cn.edu.scau.cmi.ema.domain.Url;
import cn.edu.scau.cmi.ema.domain.User;

import java.lang.reflect.InvocationTargetException;

public interface EntityFactoryService {
	
//	创建一个初始化的event对象，该对象封装了必要的属性，获取该对象后，在业务层修改该事件，减少了代码的冗余部分。

	public Object initObject(String typeName) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException;

	public Event initEvent() ;

	public Food initFood() ;

	public Foodbatch initBatch();

	public Filler initFiller();

	public Hazard initHazard();

	public Fillertype initFillertype();

	public Foodbatchfiller initFoodbatchfiller() ;

	public Feature initFeature() ;

	public Detectstandard initDetectstandard();

	public Url initUri();

	public Subject initSubject();

	public Eventadulterlink initEventadulterlink();

	public Detectdetail initDetectdetail();

	public Detect initDetect();

	public Adulterlink initAdulterlink();

	public Detectdepartment initDetectdepartment();

	public Foodtype initFoodtype();

	public Foodbatch initFoodbatch();

	public Brand initBrand();

	public Producer initProducer();

	public Featurestandard initFeaturestandard();

	public Detectfeature initDetectfeature();

	public Packingmethod initPackingmethod();

	public Crawlerdetect initCrawlerdetect();

	public Crawlerevent initCrawlerevent();

	public Eventpunish initEventpunish();

	public Adultertype initAdultertype();

	public Discoverylink initDiscoverylink();

	public Detectmethod initDetectmethod();

	public Law initLaw();

	public User initUser();

	public Eventhazard iniEventhazard();

}